/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var findNumberIn2DArray = function (matrix, target) {
  for (let i = 0; i < matrix.length; i++) {
    for (let j = 0; j < matrix[i].length; j++) {
      if (matrix[i][j] == target) return true
    }
  }
  return false
}


// “根节点” 对应的是矩阵的 “左下角” 和 “右上角” 元素，本文称之为 标志数 ，以 matrix 中的 左下角元素 为标志数 flag ，则有:

// 若 flag > target ，则 target 一定在 flag 所在 行的上方 ，即 flag 所在行可被消去。
// 若 flag < target ，则 target 一定在 flag 所在 列的右方 ，即 flag 所在列可被消去

findNumberIn2DArray = function (matrix, target) {
  if(matrix.length>0){
    let x = matrix.length-1
    let y = 0
    while (y <= matrix[0].length-1 && x >= 0) {
      if (matrix[x][y] == target) return true
      else {
        if(matrix[x][y]>target) x--
        else y++
      }
    }
  }
  return false
}

let m = [[-5]]
let t = -5
console.log(findNumberIn2DArray(m, t))
